package ru.bsuirhelper.android.core.schedule;
import android.content.Context;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import ru.bsuirhelper.android.core.StudentCalendar;
import java.util.ArrayList;
/**
* Created by Влад on 12.09.13.
*/
public class ScheduleManager {
private final ScheduleDatabase mScheduleDatabase;
private StudentCalendar mStudentCalendar = new StudentCalendar();
private static ScheduleManager instance;
public static ScheduleManager getInstance(Context context) {
if (instance == null) {
instance = new ScheduleManager(context);
}
return instance;
}
public ScheduleManager(Context context) {
mScheduleDatabase = new ScheduleDatabase(context);
mStudentCalendar = new StudentCalendar();
}
public ArrayList<StudentGroup> getGroups() {
return mScheduleDatabase.getGroups();
}
public void addSchedule(String groupId, ArrayList<Lesson> lessons) {
mScheduleDatabase.addSchedule(lessons, groupId);
}
public Lesson[] getLessonsOfDay(String groupId, DateTime dayOfYear, int subgroup) {
return mScheduleDatabase.getLessonsOfDay(groupId, dayOfYear, subgroup);
}
public void deleteSchedule(String groupId) {
mScheduleDatabase.deleteSchedule(groupId);
}
public boolean isLessonsEndToday(String groupId, int subgroup) {
DateTime currentTime = new DateTime();
Lesson[] lessons = mScheduleDatabase.getLessonsOfDay(groupId, DateTime.now(), subgroup);
if (lessons.length > 0) {
Lesson lesson = lessons[lessons.length - 1];
DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");
DateTime dt = formatter.parseDateTime(getFinishTimeOfLesson(lesson));
if (currentTime.getHourOfDay() + 1 > dt.getHourOfDay()) {
return true;
}
} else {
return true;
}
return false;
}
private String getFinishTimeOfLesson(Lesson lesson) {
String time = lesson.fields.get("timePeriod");
char c = '-';
int pos = -1;
while (time.charAt(++pos) != c) ;
String result = time.substring(pos + 1, time.length());
return result;
}
}